home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / sviluppo / svilupp2 / gmsppr10.lha / include / libraries / GameSupport.h
C/C++ Source or Header  |  1996-09-24  |  3KB  |  152 lines

  1. #ifndef LIBRARIES_GAMESUPPORT_H
  2. #define LIBRARIES_GAMESUPPORT_H
  3.  
  4. #ifndef DEVICES_INPUTEVENT_H
  5. #include <devices/inputevent.h>
  6. #endif
  7.  
  8. #ifndef EXEC_LIBRARIES_H
  9. #include <exec/libraries.h>
  10. #endif
  11.  
  12. /************************************************************************/
  13.  
  14. #ifndef INTUITION_INTUITIONBASE_H
  15. struct IntuitionBase;
  16. #endif
  17.  
  18. #ifndef DOS_DOSEXTENS_H
  19. struct DosLibrary;
  20. #endif
  21.  
  22. #ifndef GRAPHICS_GFXBASE_H
  23. struct GfxBase;
  24. #endif
  25.  
  26. #ifndef EXEC_EXECBASE_H
  27. struct ExecBase;
  28. #endif
  29.  
  30. /************************************************************************/
  31.  
  32. struct GameSupportBase
  33. {
  34.   struct Library Library;
  35.  
  36.   struct ExecBase *SysBase;            /* V39 */
  37.   struct DosLibrary *DOSBase;            /* V39 */
  38.   struct GfxBase *GfxBase;            /* V39 */
  39.   struct IntuitionBase *IntuitionBase;        /* V39 */
  40.   struct Library *UtilityBase;            /* V39 */
  41.   struct Library *LocaleBase;            /* V38 */
  42.   struct Library *LayersBase;            /* V39 */
  43.   struct Library *KeymapBase;            /* V39 */
  44.  
  45.   struct
  46.     {
  47.       struct IOStdReq Request;
  48.       struct InputEvent Event;
  49.     } Joystick;
  50. };
  51.  
  52. /************************************************************************/
  53.  
  54. struct GS_ScoreDef
  55. {
  56.   struct Hook *CompareHook;
  57.   const char *GameName;
  58.   ULONG TableSize[3];
  59.   LONG ChunkCount;
  60.   /* struct GS_ScoreChunkDef [] */
  61. };
  62.  
  63. struct GS_ScoreChunkDef
  64. {
  65.   ULONG ChunkID;
  66.   UWORD Flags;
  67.   UWORD Size;
  68. };
  69.  
  70. #define GS_SCOREDEFF_INTEGER    (1<<0)        /* item is ULONG */
  71.  
  72. /* The CompareHook is invoked with    */
  73. /*   a0 -> struct Hook *Hook        */
  74. /*   a1 -> void *Score2            */
  75. /*   a2 -> void *Score1            */
  76. /* It is expected to return        */
  77. /*   <0 if Score1 < Score2        */
  78. /*    0 if Score1 == Score2        */
  79. /*   >0 if Score1 > Score2        */
  80.  
  81. struct GS_ScoreList
  82. {
  83.   ULONG Count;            /* number of nodes in List */
  84.   struct MinList List;        /* list of Count GS_Score nodes */
  85. };
  86.  
  87. struct GS_Score
  88. {
  89.   struct MinNode Node;
  90.   const char *Name;        /* NULL for "unknown" */
  91.   ULONG TimeStamp;
  92.   /* array of ChunkCount entries. If the entry is void* and not FIXSIZE, then ULONG size is the first thing */
  93. };
  94.  
  95. #define GS_SCORE_ROLL        (0)
  96. #define GS_SCORE_TODAY        (1)
  97. #define GS_SCORE_PERSONAL    (2)
  98.  
  99. /************************************************************************/
  100.  
  101. struct GS_Color
  102. {
  103.   ULONG Red;
  104.   ULONG Green;
  105.   ULONG Blue;
  106.   LONG Pen;
  107. };
  108.  
  109. struct GS_ColorDef
  110. {
  111.   ULONG ColorCount;            /* how many colors are in Colors[] */
  112.   ULONG DistinctColors;            /* how many distinct pens did we get? */
  113.   struct GS_Color Colors[1];
  114. };
  115.  
  116. #define GS_COLORDEF(Name,Size) struct GS_ColorDef Name; struct GS_Color __##Name [Size-1]
  117.  
  118. /************************************************************************/
  119.  
  120. struct GS_Sprite
  121. {
  122.   struct BitMap *Image;
  123.   struct BitMap *Mask;
  124.   WORD Width, Height;
  125.   ULONG Flags;
  126. };
  127.  
  128. struct GS_Sprites
  129. {
  130.   ULONG SpriteCount;
  131.   struct GS_Sprite *Sprites;
  132.   struct GS_ColorDef Colors;
  133. };
  134.  
  135. /************************************************************************/
  136.  
  137. struct GS_User
  138. {
  139.   struct MinNode Node;
  140.   const char *Name;
  141.   UWORD GameCount;
  142.   struct
  143.     {
  144.       UWORD GameNumber;
  145.       ULONG TimeStamp;
  146.     } GameInfo[1];
  147. };
  148.  
  149. /************************************************************************/
  150.  
  151. #endif  /* LIBRARIES_GAMESUPPORT_H */
  152.